package org.deng.learn.designpattern.strategy;

/**
 * @author DengLibin
 * @Description
 * @Date 2018/11/9 0009 12:05
 */
public class Info {
    /**
     * 策略模式：
     *    涉及到三个角色：
     *
     * 　　●　　环境(Context)角色：持有一个Strategy的引用。
     *
     * 　　●　　抽象策略(Strategy)角色：这是一个抽象角色，通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
     *
     * 　　●　　具体策略(ConcreteStrategy)角色：包装了相关的算法或行为。
     *
     *      策略模式仅仅封装算法，提供新的算法插入到已有系统中，以及老算法从系统中“退休”的方法，
     * 策略模式并不决定在何时使用何种算法。在什么情况下使用什么算法是由客户端决定的。
     * 客户端必须知道所有的策略类，并自行决定使用哪一个策略类。
     * 这就意味着客户端必须理解这些算法的区别，以便适时选择恰当的算法类。换言之，策略模式只适用于客户端知道算法或行为的情况。
     *  示例：锦囊妙计
     */
}
